SP9934 ALICE - Alice and Bob

这道题的状态挺难设计的。。。

ss 为石子的总数,那么操作次数最多为 s+(n1)s+(n-1)

如果石子数量全不为一,那么先手必胜的条件为 s+(n1)s+(n-1) 为奇数,因为他一定可以保证操作 s+(n1)s+(n-1) 次。

阅读全文 »

UVA1500 Alice and Bob

这道题的状态挺难设计的。。。

ss 为石子的总数,那么操作次数最多为 s+(n1)s+(n-1)

如果石子数量全不为一,那么先手必胜的条件为 s+(n1)s+(n-1) 为奇数,因为他一定可以保证操作 s+(n1)s+(n-1) 次。

阅读全文 »

P2120 [ZJOI2007]仓库建设

did_i 为工厂 ii 到工厂 nn (山底)的距离, dpidp_i 为在第 ii 个工厂建仓库的最小花费。

因为只能向下运,所以第 nn 个工厂必须建仓库存放它自己的产品,答案便为 dpndp_n

边界条件 dp0dp_0 为不建仓库的花费。

阅读全文 »

P3648 [APIO2014]序列分割

dp[t][i]=max{dp[t1][j]+sj(sisj)}dp[t][i]=\max\{dp[t-1][j] + s_j(s_i-s_j)\}

dp[t][i]=max{dp[t1][j]+sjsisj2}dp[t][i]=\max\{dp[t-1][j] + s_js_i-s_j^2\}

阅读全文 »

P5504 [JSOI2011]柠檬

可以看出,选出区间的端点大小必须相同,不然可以将一端分在其他区间里,答案不会更劣。

dpidp_i 表示前 ii 个贝壳能得到的最大柠檬数, posipos_i 表示第 ii 个贝壳是第几个这种颜色的贝壳。

那么有转移:

阅读全文 »

P4072 [SDOI2016]征途

dp[i][j]=min(dp[i1][k]+(SumjSumk)2)   (0k<j)dp[i][j]=min(dp[i-1][k]+(Sum_j-Sum_k)^2) ~~~ (0 \le k < j)

dp[i][j]=min(dp[i1][k]+Sumj2+Sumk22SumiSumk)   (0k<j)dp[i][j]=min(dp[i-1][k]+Sum_j^2+Sum_k^2-2Sum_iSum_k) ~~~ (0 \le k < j)

阅读全文 »

P2365 & P5785 任务安排

两道题的转移式是一样的,只是优化不同。

dp(i)dp(i) 为完成前 ii 个任务的最小花费。

你会发现每次操作后总时间会增加 ss ,这样就不好处理当前时间。

阅读全文 »